package course.examples.Bluetooth.SetupAndTransferData; import java.io.IOException; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothSocket; import android.os.Handler; public class ConnectThread extends Thread { private BluetoothSocket mBluetoothSocket; private final BluetoothDevice mDevice; private final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter .getDefaultAdapter(); private final Handler mHandler; public ConnectThread(String deviceID, Handler handler) { mDevice = mBluetoothAdapter.getRemoteDevice(deviceID); mHandler = handler; try { mBluetoothSocket = mDevice .createRfcommSocketToServiceRecord(DataTransferActivity.APP_UUID); } catch (IOException e) { e.printStackTrace(); } } public void run() { mBluetoothAdapter.cancelDiscovery(); try { mBluetoothSocket.connect(); manageConnectedSocket(); } catch (IOException connectException) { try { mBluetoothSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } private void manageConnectedSocket() { ConnectionThread conn = new ConnectionThread( mBluetoothSocket, mHandler); mHandler.obtainMessage( DataTransferActivity.SOCKET_CONNECTED, conn) .sendToTarget(); conn.start(); } public void cancel() { try { mBluetoothSocket.close(); } catch (IOException e) { } } }